// import { toast } from '@vh-mobile/pro-utils';
import { postUploadFile, postBody } from '../handler';

export const publicUploadFile = (file: string, fileName: string, data?: any) => {
  return postUploadFile('/wechat/public/upload/file', file, fileName, data);
};

export const publicDictionary = () => {
  return postBody('/wechat/public/dictionary', {}, { errorMessageShow: false });
};

/**
 * 获取资源服务的签名
 */
export const uploadAuth = (data: any) => {
  return postBody('/wechat/public/upload/auth', data);
};

// /**
//  * 上传到云服务器
//  */
// export const aliyunOss = async (_url: any, _fileName: any, data: any, fileObj: any) => {
//   const file = fileObj.originalFileObj || fileObj;
//   const path = data.path;
//   const name = file.name;

//   try {
//     const res: any = await uploadAuth({
//       path: path,
//       name: name,
//     });
//     const { clientName, ...config }: any = res.data;
//     const client = new OSS(config);
//     // const result = await client.list(null, {});
//     // console.log(result);
//     const newName = `${config.filePath}${config.fileId}_${clientName}`;

//     const fileRes = await client.put(newName, file);
//     // console.log(fileRes);
//     return { data: { src: fileRes.url } };
//   } catch (error: any) {
//     toast.fail(error.message);
//     throw new Error(error);
//   }
// };

// /**
//  * 上传到云服务器-分片上传
//  * @param formData
//  * @returns
//  */
// export const aliyunOssMultipartUpload = async (
//   _url: any,
//   _fileName: any,
//   data: any,
//   fileObj: any,
// ) => {
//   const file = fileObj.originalFileObj;
//   const path = data.path;
//   const name = file.name;
//   try {
//     const res: any = await uploadAuth({
//       path: path,
//       name: name,
//     });
//     const { clientName, url, ...config }: any = res.data;
//     const client = new OSS(config);
//     // const headers = {
//     //   // 指定该Object被下载时的网页缓存行为。
//     //   "Cache-Control": "no-cache",
//     //   // 指定该Object被下载时的名称。
//     //   "Content-Disposition": "example.txt",
//     //   // 指定该Object被下载时的内容编码格式。
//     //   "Content-Encoding": "utf-8",
//     //   // 指定过期时间，单位为毫秒。
//     //   Expires: "1000",
//     //   // 指定Object的存储类型。
//     //   "x-oss-storage-class": "Standard",
//     //   // 指定Object标签，可同时设置多个标签。
//     //   "x-oss-tagging": "Tag1=1&Tag2=2",
//     //   // 指定初始化分片上传时是否覆盖同名Object。此处设置为true，表示禁止覆盖同名Object。
//     //   "x-oss-forbid-overwrite": "true",
//     // };

//     const options = {
//       // 获取分片上传进度、断点和返回值。
//       progress: (p: any) => {
//         const pro: any = parseInt(p * 100 + '');
//         toast.loading(`上传进度：${pro + '%'}`);
//         if (p >= 1) {
//           toast.clear();
//         }
//       },
//       // 设置并发上传的分片数量。
//       parallel: 4,
//       // 设置分片大小。默认值为1 MB，最小值为100 KB。
//       partSize: 1024 * 1024,
//       // headers,
//       // 自定义元数据，通过HeadObject接口可以获取Object的元数据。
//       // meta: { year: 2020, people: "test" },
//       // mime: "text/plain",
//     };
//     const fileRes = await client.multipartUpload(clientName, file, options);
//     const paths = fileRes.name.split('/');
//     paths[paths.length - 1] = encodeURIComponent(paths[paths.length - 1]);
//     const uri = url + '/' + paths.join('/');
//     return { data: { src: uri } };
//   } catch (error: any) {
//     toast.fail(error.message);
//     throw new Error(error);
//   }
// };

// /**
//  * 小程序上传
//  * @param url
//  * @param name
//  * @param data
//  * @returns
//  */
// export const aliyunOssMini = async (url: any, name: any, data: any) => {
//   toast.loading('文件上传中...');
//   try {
//     const res: API.xiangyingshitiSTSwenjianshangchuanshouquanxinxi = await fileAuth({
//       type: data.path,
//     });

//     const date = new Date();
//     date.setHours(date.getHours() + 1);
//     const policyText = {
//       expiration: date.toISOString(), // 设置policy过期时间。
//       conditions: [
//         // 限制上传大小。
//         ['content-length-range', 0, 1024 * 1024 * 1024],
//       ],
//     };

//     const config: any = res.data;

//     const info = await getImageInfo({
//       src: url,
//     });

//     const newName = `${config.filePath}${config.fileId}_${name}.${info.type}`;

//     const policy = Base64.encode(JSON.stringify(policyText)); // policy必须为base64的string。
//     const signature = computeSignature(config.accessKeySecret, policy);
//     const ossUrl = config.authDomain;
//     const formData = {
//       OSSAccessKeyId: config.accessKeyId,
//       signature,
//       policy,
//       'x-oss-security-token': config.securityToken,
//       key: newName,
//     };

//     const fileRes: any = await uploadFile({
//       url: ossUrl, //开发者服务器 url
//       filePath: url, //要上传文件资源的路径
//       name: 'file', //必须填file
//       formData: formData,
//     });

//     toast.clear();
//     if (fileRes.statusCode === 200 || fileRes.statusCode === 204) {
//        return { data: { src: ossUrl + '/' + newName } };
//     }
//     toast.fail('上传失败');
//     throw new Error(fileRes);
//   } catch (error: any) {
//     console.log(error);
//     toast.clear();
//     toast.fail(error.message);
//     throw new Error(error);
//   }
// };
